LocalDate Class

Java Technologies - জাভা টাইম প্যাকেজ (Java.time Package)
159

java.time প্যাকেজ Java 8 থেকে পরিচিত, যা Java Date and Time API এর অংশ হিসেবে কাজ করে। এটি পুরানো Java Date/Time API ( যেমন java.util.Date, java.util.Calendar) এর তুলনায় অনেক উন্নত এবং সহজ ব্যবহারের সুবিধা প্রদান করে। Java.time প্যাকেজটি ক্লাস এবং ইন্টারফেসের মাধ্যমে সময়, তারিখ এবং টাইম সম্পর্কিত অনেক কাজ সহজ করে দিয়েছে।

Java.time প্যাকেজের কিছু গুরুত্বপূর্ণ সুবিধা:

  1. Immutable Classes (অপরিবর্তনীয় ক্লাস): java.time প্যাকেজের সমস্ত ক্লাস অপরিবর্তনীয় (immutable)। এর মানে হচ্ছে একবার একটি অবজেক্ট তৈরি হলে, সেটি আর পরিবর্তিত হবে না। এর ফলে thread safety অনেক বৃদ্ধি পায়।
  2. Fluent API: Java.time প্যাকেজে Fluent API প্রদান করা হয়েছে, যা অনেক বেশি সুবিধাজনক এবং কমপ্লেক্স কাজকে সহজ করে তোলে।
  3. Readable API: পুরানো Java API তুলনায়, Java.time প্যাকেজের API অনেক বেশি পাঠযোগ্য এবং স্পষ্ট। এর কারণে কোড লেখা এবং রক্ষণাবেক্ষণ অনেক সহজ।
  4. ISO-8601 Standard: ISO-8601 আন্তর্জাতিক সময় ফরম্যাটের সাথে সামঞ্জস্যপূর্ণ।
  5. Time Zone Support: java.time প্যাকেজে টাইম জোন সম্পর্কিত কাজগুলোর জন্য বিশেষ ব্যবস্থা রয়েছে।
  6. Duration and Period: সময় পরিমাপের জন্য Duration এবং Period ক্লাস রয়েছে, যা সময়ের পার্থক্য বের করতে সাহায্য করে।

LocalDate Class

LocalDate ক্লাসটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা বিহীন সময়ের (time-less) তারিখ (date) প্রতিনিধিত্ব করে। অর্থাৎ এটি শুধুমাত্র তারিখের তথ্য ধারণ করে এবং টাইম বা টাইমজোন সম্পর্কিত কোন তথ্য ধারণ করে না। এই ক্লাসটি বিশেষভাবে দিনের সংখ্যা, মাসের সংখ্যা এবং বছরের সংখ্যা দিয়ে কাজ করার জন্য ব্যবহার করা হয়।

LocalDate Class এর সুবিধা:

  1. Time Zone Independence: LocalDate টাইম জোন সম্পর্কিত কোন তথ্য ধারণ করে না, তাই এটি একটি নির্দিষ্ট স্থান বা অঞ্চলের জন্য প্রযোজ্য নয়।
  2. Immutable: LocalDate ক্লাসটি অপরিবর্তনীয়, অর্থাৎ তারিখ সেট করার পর তা পরিবর্তন করা যায় না। একটি নতুন অবজেক্ট তৈরি করতে হয়।
  3. Easy to Use: Java.time প্যাকেজের LocalDate ক্লাসটি ব্যবহার করা খুবই সহজ এবং স্ট্যান্ডার্ড তারিখ ফরম্যাটে কাজ করে।
  4. ISO-8601 Standard: LocalDate ISO-8601 স্ট্যান্ডার্ড অনুযায়ী তারিখ রূপান্তরিত করে।

LocalDate Class এর প্রধান মেথড:

  • now(): বর্তমান তারিখ ফেরত দেয়।
  • of(int year, int month, int dayOfMonth): নির্দিষ্ট বছর, মাস এবং দিন দিয়ে একটি LocalDate অবজেক্ট তৈরি করে।
  • getYear(), getMonth(), getDayOfMonth(): বছরের, মাসের এবং দিনের মান বের করতে ব্যবহৃত হয়।
  • plusDays(long daysToAdd), minusDays(long daysToSubtract): নির্দিষ্ট পরিমাণ দিন যোগ বা বিয়োগ করতে ব্যবহৃত হয়।
  • isBefore(ChronoLocalDate other), isAfter(ChronoLocalDate other): দুটি তারিখের মধ্যে তুলনা করতে ব্যবহৃত হয়।

LocalDate Class এর উদাহরণ:

import java.time.LocalDate;

public class LocalDateExample {
    public static void main(String[] args) {
        // বর্তমান তারিখ নেওয়া
        LocalDate currentDate = LocalDate.now();
        System.out.println("Current Date: " + currentDate);  // Output: Current Date: 2024-12-23
        
        // নির্দিষ্ট তারিখ তৈরি করা
        LocalDate specificDate = LocalDate.of(2024, 12, 25);
        System.out.println("Specific Date: " + specificDate);  // Output: Specific Date: 2024-12-25

        // বর্তমান বছরের, মাস এবং দিন আলাদাভাবে বের করা
        System.out.println("Year: " + currentDate.getYear());  // Output: Year: 2024
        System.out.println("Month: " + currentDate.getMonth());  // Output: Month: DECEMBER
        System.out.println("Day of the Month: " + currentDate.getDayOfMonth());  // Output: Day of the Month: 23

        // 10 দিন যোগ করা
        LocalDate futureDate = currentDate.plusDays(10);
        System.out.println("Future Date (10 days later): " + futureDate);  // Output: Future Date (10 days later): 2024-12-33

        // 5 দিন বিয়োগ করা
        LocalDate pastDate = currentDate.minusDays(5);
        System.out.println("Past Date (5 days earlier): " + pastDate);  // Output: Past Date (5 days earlier): 2024-12-18
    }
}

ব্যাখ্যা:

  1. LocalDate.now(): বর্তমান তারিখ LocalDate অবজেক্টে ধারণ করা হচ্ছে।
  2. LocalDate.of(2024, 12, 25): নির্দিষ্ট বছর, মাস এবং দিন দিয়ে একটি LocalDate অবজেক্ট তৈরি করা হচ্ছে।
  3. getYear(), getMonth(), getDayOfMonth(): তারিখের বছরের, মাসের এবং দিনের মান বের করা হচ্ছে।
  4. plusDays() এবং minusDays(): বর্তমান তারিখের সাথে ১০ দিন যোগ করা হচ্ছে এবং ৫ দিন বিয়োগ করা হচ্ছে।

আউটপুট:

Current Date: 2024-12-23
Specific Date: 2024-12-25
Year: 2024
Month: DECEMBER
Day of the Month: 23
Future Date (10 days later): 2024-12-33
Past Date (5 days earlier): 2024-12-18

LocalDate Class এর অন্যান্য ব্যবহার:

1. Comparing Dates:

LocalDate ক্লাসে তারিখের তুলনা করার জন্য isBefore(), isAfter() এবং isEqual() মেথড ব্যবহার করা হয়।

LocalDate date1 = LocalDate.of(2024, 12, 25);
LocalDate date2 = LocalDate.of(2024, 12, 24);

System.out.println(date1.isAfter(date2));  // Output: true
System.out.println(date1.isBefore(date2));  // Output: false
System.out.println(date1.isEqual(date2));  // Output: false

2. Leap Year Check:

Leap year চেক করার জন্য isLeapYear() মেথড ব্যবহার করা হয়।

LocalDate date = LocalDate.of(2024, 2, 29);
System.out.println(date.isLeapYear());  // Output: true

  • LocalDate ক্লাসটি Java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা শুধুমাত্র তারিখের তথ্য ধারণ করে এবং এটি immutable (অপরিবর্তনীয়), তাই একবার তৈরি হলে এর মান পরিবর্তন করা সম্ভব নয়।
  • LocalDate ক্লাসের বিভিন্ন মেথড ব্যবহার করে আপনি বর্তমান তারিখ পেতে, নির্দিষ্ট তারিখ তৈরি করতে, তারিখে দিন যোগ/বিয়োগ করতে, এবং বিভিন্ন তুলনামূলক কাজ করতে পারবেন।
  • LocalDate তারিখের প্রাথমিক ব্যবহারের জন্য এবং ডেটা প্রক্রিয়াকরণে একটি শক্তিশালী টুল, যা তারিখের প্যাটার্ন ম্যানিপুলেশন এবং ভ্যালিডেশন করতে সাহায্য করে।

Java.time প্যাকেজের অন্যান্য ক্লাসের মতো LocalDate তারিখ সম্পর্কিত অনেক কার্যকারিতা সরবরাহ করে, যা পুরানো Java API-র তুলনায় অনেক বেশি সুবিধাজনক এবং নির্ভরযোগ্য।

Content added By

LocalDate এর ধারণা এবং ব্যবহার

149

java.time প্যাকেজটি Java 8 এ পরিচিত হয়েছে এবং এটি Date and Time API এর আধুনিক সংস্করণ। এটি পূর্ববর্তী java.util.Date এবং java.util.Calendar ক্লাসের তুলনায় অনেক বেশি কার্যকরী এবং সঠিক। LocalDate হল java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা তারিখ সংক্রান্ত বিভিন্ন অপারেশনকে সহজ ও সঠিকভাবে করতে সহায়তা করে।

LocalDate ক্লাসের ধারণা:

LocalDate ক্লাসটি শুধুমাত্র তারিখ (date) ধারণ করে এবং এটি সময়ের অংশ (time) বা যেকোনো টাইমজোন (timezone) সম্পর্কিত তথ্য ধারণ করে না। এটি সাধারণ তারিখ (যেমন: 2024-12-23) রাখে এবং এটি immutable। এর মানে হলো, একবার একটি LocalDate অবজেক্ট তৈরি করার পর তার মান পরিবর্তন করা সম্ভব নয়।

LocalDate এর মাধ্যমে আপনি:

  • বর্তমান তারিখ বের করতে পারেন,
  • নির্দিষ্ট তারিখ তৈরি করতে পারেন,
  • তারিখের উপর বিভিন্ন অপারেশন করতে পারেন যেমন যোগ, বিয়োগ, কম্প্যারison ইত্যাদি।

LocalDate ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:

  1. now(): এটি বর্তমান তারিখ প্রদান করে।

    LocalDate currentDate = LocalDate.now();
    System.out.println(currentDate);  // Example: 2024-12-23
    
  2. of(int year, int month, int dayOfMonth): এটি একটি নির্দিষ্ট তারিখ তৈরি করে।

    LocalDate specificDate = LocalDate.of(2024, 12, 23);
    System.out.println(specificDate);  // Example: 2024-12-23
    
  3. getYear(), getMonth(), getDayOfMonth(): এর মাধ্যমে আপনি তারিখের বছর, মাস, দিন অ্যাক্সেস করতে পারেন।

    int year = specificDate.getYear();  // 2024
    int month = specificDate.getMonthValue();  // 12
    int day = specificDate.getDayOfMonth();  // 23
    
  4. plusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন যোগ করে।

    LocalDate newDate = specificDate.plusDays(5);
    System.out.println(newDate);  // Example: 2024-12-28
    
  5. minusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন বিয়োগ করে।

    LocalDate newDate = specificDate.minusDays(5);
    System.out.println(newDate);  // Example: 2024-12-18
    
  6. isBefore(ChronoLocalDate other), isAfter(ChronoLocalDate other): তারিখের তুলনা করতে ব্যবহৃত হয়।

    LocalDate date1 = LocalDate.of(2024, 12, 23);
    LocalDate date2 = LocalDate.of(2025, 1, 1);
    
    System.out.println(date1.isBefore(date2));  // true
    System.out.println(date1.isAfter(date2));   // false
    
  7. compareTo(ChronoLocalDate other): এটি দুটি তারিখের মধ্যে তুলনা করে, ছোট হলে ঋণাত্মক, সমান হলে শূন্য এবং বড় হলে ধনাত্মক মান রিটার্ন করে।

    int comparison = date1.compareTo(date2);  // returns a negative value because date1 is before date2
    

LocalDate ক্লাসের ব্যবহার উদাহরণ:

import java.time.LocalDate;

public class LocalDateExample {
    public static void main(String[] args) {
        // 1. Get the current date
        LocalDate currentDate = LocalDate.now();
        System.out.println("Current Date: " + currentDate);

        // 2. Create a specific date
        LocalDate specificDate = LocalDate.of(2024, 12, 23);
        System.out.println("Specific Date: " + specificDate);

        // 3. Get year, month, and day
        int year = specificDate.getYear();
        int month = specificDate.getMonthValue();
        int day = specificDate.getDayOfMonth();
        System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day);

        // 4. Add 5 days to the specific date
        LocalDate newDate = specificDate.plusDays(5);
        System.out.println("New Date after adding 5 days: " + newDate);

        // 5. Subtract 5 days from the specific date
        LocalDate previousDate = specificDate.minusDays(5);
        System.out.println("New Date after subtracting 5 days: " + previousDate);

        // 6. Compare two dates
        LocalDate date1 = LocalDate.of(2024, 12, 23);
        LocalDate date2 = LocalDate.of(2025, 1, 1);
        System.out.println("Is date1 before date2? " + date1.isBefore(date2));
        System.out.println("Is date1 after date2? " + date1.isAfter(date2));

        // 7. Check if two dates are equal
        LocalDate date3 = LocalDate.of(2024, 12, 23);
        System.out.println("Is date1 equal to date3? " + date1.equals(date3));
    }
}

আউটপুট:

Current Date: 2024-12-23
Specific Date: 2024-12-23
Year: 2024, Month: 12, Day: 23
New Date after adding 5 days: 2024-12-28
New Date after subtracting 5 days: 2024-12-18
Is date1 before date2? true
Is date1 after date2? false
Is date1 equal to date3? true

LocalDate এর সুবিধা:

  1. Immutable: LocalDate অবজেক্ট পরিবর্তনযোগ্য নয়, যা সিস্টেমের জন্য নিরাপদ এবং ব্যবহার করা সহজ।
  2. Time Zone Independence: এটি টাইমজোন সম্পর্কিত কোনো তথ্য ধারণ করে না, ফলে এটি শুধুমাত্র তারিখ (date) মান পরিচালনা করতে সুবিধাজনক।
  3. Easy Date Operations: সহজে দিন যোগ বা বিয়োগ করতে পারেন এবং বিভিন্ন তারিখ সম্পর্কিত অপারেশন করতে পারেন।
  4. Clear API: LocalDate API খুবই পরিষ্কার এবং সহজবোধ্য। এতে time zone বা time এর কোনো জটিলতা নেই, শুধুমাত্র date এর উপরে কাজ করা হয়।
  5. Strong Typing: LocalDate ব্যবহার করে টাইপ সেফটি নিশ্চিত করা যায়, যার ফলে টাইপ সম্পর্কিত ত্রুটি কম হয়।

LocalDate ক্লাসটি Java 8 থেকে ব্যবহার করা হয়ে থাকে এবং এটি date-only মান সঞ্চয় ও প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী। এটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস যা তারিখ সম্পর্কিত কাজগুলি খুব সহজ, সঠিক এবং টাইপ সেফভাবে করতে সক্ষম। LocalDate দিয়ে আপনি কোনো টাইমজোন বা সময়ের অংশ ছাড়াই শুধু তারিখের উপর বিভিন্ন অপারেশন করতে পারেন।

Content added By

LocalDate এর মাধ্যমে বর্তমান তারিখ পাওয়া

136

Java.time প্যাকেজ (Java 8 এবং পরবর্তী সংস্করণে) Date and Time API হিসেবে পরিচিত, যা জাভাতে তারিখ এবং সময় পরিচালনা করতে ব্যবহৃত হয়। LocalDate ক্লাসটি Java.time প্যাকেজের একটি অংশ এবং এটি শুধুমাত্র তারিখ (যেমন দিন, মাস, বছর) সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়, কোনো সময় (ঘণ্টা, মিনিট, সেকেন্ড) ছাড়া।

LocalDate ক্লাসের সুবিধা:

  • Immutable: LocalDate ক্লাস ইমিউটেবল, অর্থাৎ তারিখ একবার সেট হয়ে গেলে তা পরিবর্তন করা যায় না। কোনো তারিখের পরিবর্তন করলে নতুন একটি LocalDate অবজেক্ট তৈরি হবে।
  • Thread-Safe: LocalDate থ্রেড-সেইফ, তাই একাধিক থ্রেডে ব্যবহার করার ক্ষেত্রে এটি নিরাপদ।
  • নির্ভুলতার সাথে তারিখ পরিচালনা: এটি ডেটা সম্পর্কিত যে কোনো ভুল কমিয়ে আনে যেমন Leap Year, Month Length, Daylight Saving Time ইত্যাদি।

LocalDate ক্লাসের মাধ্যমে বর্তমান তারিখ পাওয়া:

LocalDate.now() মেথডটি ব্যবহার করে আপনি বর্তমান দিনের তারিখ পেতে পারেন। এটি সিস্টেমের বর্তমান স্থানীয় সময় অঞ্চলের (timezone) অনুযায়ী বর্তমান তারিখ রিটার্ন করে।

LocalDate এর মাধ্যমে বর্তমান তারিখ পাওয়া:

import java.time.LocalDate;

public class CurrentDateExample {
    public static void main(String[] args) {
        // Get the current date
        LocalDate currentDate = LocalDate.now();
        
        // Print the current date
        System.out.println("Current Date: " + currentDate);
    }
}

ব্যাখ্যা:

  • LocalDate.now(): এটি বর্তমান তারিখটি আজকের দিন, মাস এবং বছর সহ রিটার্ন করে। এটি স্থানীয় সময় অঞ্চলের (timezone) অনুযায়ী বর্তমান তারিখ পাবে।
  • System.out.println(currentDate): এটি বর্তমান তারিখকে আউটপুট হিসাবে প্রিন্ট করবে।

আউটপুট:

Current Date: 2024-12-23

এখানে, 2024-12-23 তারিখটি বর্তমান তারিখ হিসেবে প্রদর্শিত হচ্ছে। এটি আপনার সিস্টেমের বর্তমান স্থানীয় তারিখের উপর নির্ভর করবে।

অন্য কিছু গুরুত্বপূর্ণ মেথড:

  1. now(ZoneId zone): এই মেথডটি একটি নির্দিষ্ট ZoneId (সময় অঞ্চল) অনুযায়ী বর্তমান তারিখ প্রদান করে।

    LocalDate currentDateInNewYork = LocalDate.now(ZoneId.of("America/New_York"));
    System.out.println("Current Date in New York: " + currentDateInNewYork);
    
  2. of(int year, int month, int dayOfMonth): একটি নির্দিষ্ট তারিখ তৈরি করার জন্য ব্যবহার করা হয়।

    LocalDate specificDate = LocalDate.of(2025, 5, 15);
    System.out.println("Specific Date: " + specificDate);
    
  3. getDayOfWeek(): বর্তমান তারিখের সপ্তাহের দিন (Monday, Tuesday, etc.) জানতে ব্যবহার করা হয়।

    System.out.println("Day of the Week: " + currentDate.getDayOfWeek());
    

LocalDate ক্লাসটি Java.time প্যাকেজের একটি গুরুত্বপূর্ণ অংশ যা date-only ব্যবহারের জন্য ডিজাইন করা হয়েছে। এটি সিস্টেমের বর্তমান তারিখ প্রদান করে এবং সহজেই তারিখ সম্পর্কিত অপারেশন করতে সাহায্য করে, যেমন একটি নির্দিষ্ট তারিখ তৈরি করা, সপ্তাহের দিন বের করা, বা স্থানীয় টাইমজোন অনুযায়ী তারিখ পেতে।

Content added By

নির্দিষ্ট তারিখ সেট করা এবং ক্যালেন্ডার তারিখ থেকে LocalDate তৈরি করা

175

Java 8 এর পর java.time প্যাকেজটি Date and Time API হিসেবে পরিচিত যা সময় এবং তারিখের ব্যবস্থাপনা আরও সহজ এবং কার্যকরী করেছে। এটি LocalDate, LocalTime, LocalDateTime, ZonedDateTime, এবং Instant সহ বিভিন্ন ক্লাস সরবরাহ করে, যা সময় এবং তারিখের প্রক্রিয়াগুলি পরিচালনা করতে সাহায্য করে। এখানে আমরা LocalDate সম্পর্কিত দুটি বিষয় দেখব:

  1. নির্দিষ্ট তারিখ সেট করা (Setting a Specific Date)
  2. ক্যালেন্ডার তারিখ থেকে LocalDate তৈরি করা (Creating LocalDate from Calendar Date)

1. নির্দিষ্ট তারিখ সেট করা (Setting a Specific Date)

LocalDate ব্যবহার করে আপনি একটি নির্দিষ্ট তারিখ তৈরি করতে পারেন। LocalDate একটি তারিখের অবজেক্ট যেটি year, month, day ধারণ করে।

LocalDate.of() Method:

এই মেথডটি নির্দিষ্ট বছর, মাস, এবং দিন ব্যবহার করে একটি নতুন LocalDate অবজেক্ট তৈরি করে।

Syntax:

LocalDate date = LocalDate.of(int year, int month, int dayOfMonth);
  • year: বছর
  • month: মাস (1 থেকে 12)
  • dayOfMonth: দিন (1 থেকে মাসের সর্বোচ্চ দিন সংখ্যা)

Example:

import java.time.LocalDate;

public class SetSpecificDateExample {
    public static void main(String[] args) {
        // Set a specific date (e.g., 15th August 2024)
        LocalDate specificDate = LocalDate.of(2024, 8, 15);

        // Print the specific date
        System.out.println("Specific Date: " + specificDate);
    }
}

আউটপুট:

Specific Date: 2024-08-15

ব্যাখ্যা:

  • LocalDate.of(2024, 8, 15) দ্বারা আমরা 15 আগস্ট 2024 তারিখ সেট করেছি।
  • এরপর specificDate অবজেক্টটি প্রিন্ট করা হয়েছে এবং আউটপুটে "2024-08-15" প্রদর্শিত হয়েছে।

2. ক্যালেন্ডার তারিখ থেকে LocalDate তৈরি করা (Creating LocalDate from Calendar Date)

যদি আপনার কাছে java.util.Calendar অবজেক্ট থাকে, তবে আপনি সহজেই LocalDate এ কনভার্ট করতে পারেন। Java-তে Calendar অবজেক্টের মাধ্যমে তারিখ ব্যবস্থাপনা সাধারণত পুরনো ছিল, তবে LocalDate দিয়ে আরও আধুনিক এবং কার্যকরীভাবে তারিখ ম্যানিপুলেট করা যায়।

Calendar থেকে LocalDate তৈরি করা:

Calendar অবজেক্ট থেকে LocalDate তৈরি করার জন্য, আপনাকে LocalDate.of() মেথড ব্যবহার করতে হবে এবং Calendar থেকে বছরের, মাসের, এবং দিনের মান বের করতে হবে।

Example:

import java.util.Calendar;
import java.time.LocalDate;

public class CalendarToLocalDateExample {
    public static void main(String[] args) {
        // Create a Calendar instance
        Calendar calendar = Calendar.getInstance();

        // Set a specific date (e.g., 15th August 2024)
        calendar.set(2024, Calendar.AUGUST, 15);

        // Convert Calendar date to LocalDate
        LocalDate localDate = calendar.toInstant()
                                     .atZone(java.time.ZoneId.systemDefault())
                                     .toLocalDate();

        // Print the LocalDate
        System.out.println("LocalDate from Calendar: " + localDate);
    }
}

আউটপুট:

LocalDate from Calendar: 2024-08-15

ব্যাখ্যা:

  • প্রথমে Calendar.getInstance() দ্বারা একটি Calendar অবজেক্ট তৈরি করা হয়।
  • calendar.set(2024, Calendar.AUGUST, 15) দ্বারা 15 আগস্ট 2024 তারিখ সেট করা হয়।
  • এরপর calendar.toInstant() এবং atZone() মেথডের মাধ্যমে LocalDate এ কনভার্ট করা হয়।
  • শেষমেশ, localDate প্রিন্ট করা হলে "2024-08-15" আউটপুট আসে।

3. LocalDate এবং Calendar এর মধ্যে পার্থক্য:

FeatureLocalDateCalendar
TypeImmutable (Cannot be modified)Mutable (Can be modified)
UsagePreferred for modern date handlingOlder approach, still used in legacy systems
Thread SafetyThread-safeNot thread-safe by default
API SimplicitySimplified API for date manipulationMore complex API with additional methods
Time Zone SupportSupports only local timeSupports time zones and time offsets

Summary:

  • LocalDate হল একটি ক্লাস যা শুধুমাত্র তারিখ পরিচালনা করে, এবং এটি immutable (অপরিবর্তনীয়)। এটি Java 8 এবং পরবর্তী সংস্করণের জন্য আধুনিক তারিখ/সময় ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
  • Calendar হল পুরানো Java API যা mutable (পরিবর্তনযোগ্য) এবং টাইম জোন এবং সময়ের সাথে সম্পর্কিত আরো বিস্তারিত তথ্য রাখে, তবে এটি জটিল এবং থ্রেড-সেফ নয়।
  • আপনি LocalDate.of() মেথড ব্যবহার করে নির্দিষ্ট তারিখ সেট করতে পারেন, এবং পুরানো Calendar অবজেক্ট থেকে LocalDate তৈরি করতে toInstant() এবং atZone() মেথড ব্যবহার করতে পারেন।

Java 8 এবং পরবর্তী সংস্করণে LocalDate এবং java.time API ব্যবহারের পরামর্শ দেওয়া হয়, কারণ এটি আরও সহজ, পরিষ্কার এবং কার্যকরী।

Content added By

LocalDate এর বিভিন্ন মেথড (plusDays, minusDays, isBefore, isAfter)

136

java.time প্যাকেজে LocalDate ক্লাসটি একটি নির্দিষ্ট তারিখ (date) কে প্রতিনিধিত্ব করে, যেমন বছর, মাস, এবং দিন। এটি Java 8 থেকে প্রবর্তিত হয়েছিল এবং সময় সংক্রান্ত গণনা এবং পরিচালনার জন্য ব্যবহার করা হয়। LocalDate ক্লাসটি সময় (time) বা তারিখ এবং সময়ের অঞ্চলের সাথে সম্পর্কিত কোন তথ্য ধারণ করে না।

এই ক্লাসে কয়েকটি গুরুত্বপূর্ণ মেথড আছে, যা আপনাকে তারিখের সাথে বিভিন্ন ধরনের গণনা এবং তুলনা করতে সাহায্য করে। এখানে আমরা plusDays, minusDays, isBefore, এবং isAfter মেথডগুলোর ব্যবহার দেখব।

1. plusDays(long days) মেথড

plusDays(long days) মেথডটি একটি নির্দিষ্ট সংখ্যক দিন যুক্ত করে একটি নতুন LocalDate রিটার্ন করে। এটি অরিজিনাল LocalDate অবজেক্টটি পরিবর্তন করে না, বরং একটি নতুন LocalDate অবজেক্ট তৈরি করে যা নির্দিষ্ট সংখ্যক দিন যুক্ত করেছে।

Syntax:

LocalDate plusDays(long days)

Example:

import java.time.LocalDate;

public class LocalDatePlusDaysExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 1, 1);  // January 1, 2024
        
        // Add 10 days to the date
        LocalDate newDate = date.plusDays(10);
        
        System.out.println("Original Date: " + date);
        System.out.println("New Date after adding 10 days: " + newDate);
    }
}

Output:

Original Date: 2024-01-01
New Date after adding 10 days: 2024-01-11

ব্যাখ্যা:

  • এখানে plusDays(10) মেথড ব্যবহার করে 2024 সালের জানুয়ারির 1 তারিখে 10 দিন যোগ করা হয়েছে, যা নতুন তারিখ 2024-01-11 হয়েছে।

2. minusDays(long days) মেথড

minusDays(long days) মেথডটি একটি নির্দিষ্ট সংখ্যক দিন বিয়োগ করে একটি নতুন LocalDate রিটার্ন করে। এটি মূল LocalDate অবজেক্টটি পরিবর্তন না করে, বরং একটি নতুন LocalDate তৈরি করে।

Syntax:

LocalDate minusDays(long days)

Example:

import java.time.LocalDate;

public class LocalDateMinusDaysExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2024, 1, 10);  // January 10, 2024
        
        // Subtract 5 days from the date
        LocalDate newDate = date.minusDays(5);
        
        System.out.println("Original Date: " + date);
        System.out.println("New Date after subtracting 5 days: " + newDate);
    }
}

Output:

Original Date: 2024-01-10
New Date after subtracting 5 days: 2024-01-05

ব্যাখ্যা:

  • এখানে minusDays(5) মেথড ব্যবহার করে 2024 সালের জানুয়ারির 10 তারিখ থেকে 5 দিন বিয়োগ করা হয়েছে, যা নতুন তারিখ 2024-01-05 হয়েছে।

3. isBefore(ChronoLocalDate other) মেথড

isBefore(ChronoLocalDate other) মেথডটি তুলনা করে নির্দিষ্ট একটি LocalDate অন্য একটি ChronoLocalDate (যেমন আরেকটি LocalDate) এর আগে আছে কিনা। যদি প্রথম তারিখটি অন্য তারিখের আগে থাকে, তবে এটি true রিটার্ন করবে, অন্যথায় false রিটার্ন করবে।

Syntax:

boolean isBefore(ChronoLocalDate other)

Example:

import java.time.LocalDate;

public class LocalDateIsBeforeExample {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2024, 1, 1);
        LocalDate date2 = LocalDate.of(2024, 12, 31);
        
        // Check if date1 is before date2
        boolean result = date1.isBefore(date2);
        
        System.out.println("Is date1 before date2? " + result);
    }
}

Output:

Is date1 before date2? true

ব্যাখ্যা:

  • isBefore() মেথডটি পরীক্ষা করছে যদি 2024-01-01 তারিখটি 2024-12-31 তারিখের আগে থাকে। এখানে true রিটার্ন হবে কারণ জানুয়ারির 1 তারিখ ডিসেম্বরের 31 তারিখের আগে।

4. isAfter(ChronoLocalDate other) মেথড

isAfter(ChronoLocalDate other) মেথডটি তুলনা করে নির্দিষ্ট একটি LocalDate অন্য একটি ChronoLocalDate (যেমন আরেকটি LocalDate) এর পরে আছে কিনা। যদি প্রথম তারিখটি অন্য তারিখের পরে থাকে, তবে এটি true রিটার্ন করবে, অন্যথায় false রিটার্ন করবে।

Syntax:

boolean isAfter(ChronoLocalDate other)

Example:

import java.time.LocalDate;

public class LocalDateIsAfterExample {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2024, 12, 31);
        LocalDate date2 = LocalDate.of(2024, 1, 1);
        
        // Check if date1 is after date2
        boolean result = date1.isAfter(date2);
        
        System.out.println("Is date1 after date2? " + result);
    }
}

Output:

Is date1 after date2? true

ব্যাখ্যা:

  • isAfter() মেথডটি পরীক্ষা করছে যদি 2024-12-31 তারিখটি 2024-01-01 তারিখের পরে থাকে। এখানে true রিটার্ন হবে কারণ ডিসেম্বরের 31 তারিখ জানুয়ারির 1 তারিখের পরে।

সারাংশ:

  • plusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন যোগ করে একটি নতুন LocalDate রিটার্ন করে।
  • minusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন বিয়োগ করে একটি নতুন LocalDate রিটার্ন করে।
  • isBefore(ChronoLocalDate other): এটি চেক করে যে, প্রথম LocalDate অন্য একটি ChronoLocalDate এর আগে আছে কিনা।
  • isAfter(ChronoLocalDate other): এটি চেক করে যে, প্রথম LocalDate অন্য একটি ChronoLocalDate এর পরে আছে কিনা।

এগুলো LocalDate ক্লাসের কিছু অত্যন্ত কার্যকরী মেথড, যা তারিখের সাথে কাজ করার সময় তারিখে পরিবর্তন এবং তুলনা সহজ করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...